class Student:
    def __init__(self, student_id, name, age, gender, height, weight, score, address, phone):
        self.student_id = student_id
        self.name = name
        self.age = age
        self.gender = gender
        self.height = height
        self.weight = weight
        self.score = score
        self.address = address
        self.phone = phone

    def study(self, time):
        print(f"{self.name} 学习了 {time} 小时")

    def play_game(self, game_name):
        print(f"{self.name} 正在玩 {game_name} 游戏")

    def program(self, lines):
        print(f"{self.name} 写了 {lines} 行代码")

    def sum_numbers(self, *numbers):
        total = sum(numbers)
        return total
##############################################################################################################################################################
class Car:
    def __init__(self, model, wheel_count, color, weight, fuel_capacity):
        self.model = model
        self.wheel_count = wheel_count
        self.color = color
        self.weight = weight
        self.fuel_capacity = fuel_capacity

    def run(self, function):
        print(f"{self.model} 正在执行功能：{function}")

# 创建不同品牌车辆对象
ferrari = Car("法拉利", 4, "红色", 1500, 60)
bmw = Car("宝马", 4, "黑色", 1600, 65)
suzuki = Car("铃木", 2, "白色", 120, 15)
wuling = Car("五菱", 4, "银色", 1800, 50)
tractor = Car("拖拉机", 4, "绿色", 3000, 100)
##########################################################################################################################################################################
class Laptop:
    def __init__(self, model, standby_time, color, weight, cpu, memory, hard_disk):
        self.model = model
        self.standby_time = standby_time
        self.color = color
        self.weight = weight
        self.cpu = cpu
        self.memory = memory
        self.hard_disk = hard_disk

    def play_game(self, game_name):
        print(f"{self.model} 正在运行游戏：{game_name}")

    def work(self):
        print(f"{self.model} 正在进行办公操作")
########################################################################################################################################################
class Monkey:
    def __init__(self, species, gender, color, weight):
        self.species = species
        self.gender = gender
        self.color = color
        self.weight = weight

    def make_fire(self, material):
        print(f"{self.species} 猴子用 {material} 试图造火")

    def learn(self, *things):
        for thing in things:
            print(f"{self.species} 猴子正在学习：{thing}")
##########################################################################################################################################################
class Human:
    def __init__(self, name, gender, age, balance, phone_brand, battery_capacity, screen_size, max_standby_time):
        self.name = name
        self.gender = gender
        self.age = age
        self.balance = balance  # 当前话费余额（元）
        self.phone_brand = phone_brand
        self.battery_capacity = battery_capacity  # 毫安
        self.screen_size = screen_size  # 英寸
        self.max_standby_time = max_standby_time  # 小时
        self.points = 0  # 初始积分为0

    def send_sms(self, content):
        print(f"{self.name} 发送短信内容：{content}")

    def make_call(self, phone_number, duration_minutes):
        if not phone_number:
            print("错误：电话号码不能为空！")
            return

        if self.balance < 1:
            print("错误：话费不足1元，无法拨打电话！")
            return

        # 判断扣费标准和积分计算
        if 0 <= duration_minutes <= 10:
            cost_per_minute = 1.00
            points_per_minute = 15
        elif 10 < duration_minutes <= 20:
            cost_per_minute = 0.80
            points_per_minute = 39
        else:
            cost_per_minute = 0.65
            points_per_minute = 48

        total_cost = cost_per_minute * duration_minutes

        if self.balance < total_cost:
            print(f"错误：当前话费 {self.balance:.2f} 元不足以拨打 {duration_minutes} 分钟的电话，需 {total_cost:.2f} 元")
            return

        # 拨打电话
        print(f"{self.name} 正在拨打 {phone_number}，通话时间：{duration_minutes} 分钟...")

        # 扣费 & 积分
        self.balance -= total_cost
        gained_points = duration_minutes * points_per_minute
        self.points += gained_points

        # 结果反馈
        print(f"通话结束，扣费：{total_cost:.2f} 元，剩余话费：{self.balance:.2f} 元")
        print(f"本次通话获得积分：{gained_points}，当前总积分：{self.points}")
